#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "pathdefine.h"
#include <QSerialPort>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    //imu
    QString imuConfigPath=D_TCRCONTROLLER_DATA_PATH;
    imuConfigPath+=D_IMU_DEVICE_CONFIG_PATH;
    imuDevice=new ImuDevice(imuConfigPath);
//    initialSerial();
}

MainWindow::~MainWindow()
{
    delete ui;
}

int MainWindow::initialSerial()
{

    m_serialPort = new QSerialPort();//实例化串口类一个对象

    if(m_serialPort->isOpen())//如果串口已经打开了 先给他关闭了
    {
        m_serialPort->clear();
        m_serialPort->close();
    }

    //设置串口名字 假设我们上面已经成功获取到了 并且使用第一个
    m_serialPort->setPortName("ttyUSB0");

    if(!m_serialPort->open(QIODevice::ReadWrite))//用ReadWrite 的模式尝试打开串口
    {
        qDebug()<<"打开失败!";
        return 0;
    }
    //打开成功

    m_serialPort->setBaudRate(QSerialPort::Baud115200,QSerialPort::AllDirections);//设置波特率和读写方向
    m_serialPort->setDataBits(QSerialPort::Data8);		//数据位为8位
    m_serialPort->setFlowControl(QSerialPort::NoFlowControl);//无流控制
    m_serialPort->setParity(QSerialPort::NoParity);	//无校验位
    m_serialPort->setStopBits(QSerialPort::OneStop); //一位停止位

    //连接信号槽 当下位机发送数据QSerialPortInfo 会发送个 readyRead 信号,我们定义个槽void receiveInfo()解析数据
    connect(m_serialPort,SIGNAL(readyRead()),this,SLOT(receiveInfo()));

}

void MainWindow::receiveInfo()
{
    QByteArray info = m_serialPort->readAll();
    qDebug()<<info;
}

void MainWindow::on_pushButton_clicked()
{
    receiveInfo();
}
